<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libcoap: DTLS Support</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">libcoap<span id="projectnumber">&#160;4.2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__dtls.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">DTLS Support</div></div>
</div><!--header-->
<div class="contents">

<p>API functions for interfacing with DTLS libraries.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcoap__tls__version__t.html">coap_tls_version_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure used for returning the underlying (D)TLS library information.  <a href="structcoap__tls__version__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure that holds the PKI PEM definitions.  <a href="structcoap__pki__key__pem__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure that holds the PKI ASN.1 (DER) definitions.  <a href="structcoap__pki__key__asn1__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure that holds the PKI key information.  <a href="structcoap__dtls__key__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure used for defining the PKI setup data to be used.  <a href="structcoap__dtls__pki__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga33b0ad5584a64154547b37edf956e91e" id="r_ga33b0ad5584a64154547b37edf956e91e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga33b0ad5584a64154547b37edf956e91e">COAP_TLS_LIBRARY_NOTLS</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga33b0ad5584a64154547b37edf956e91e"><td class="mdescLeft">&#160;</td><td class="mdescRight">No DTLS library.  <br /></td></tr>
<tr class="separator:ga33b0ad5584a64154547b37edf956e91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad96392a988877a91c8d1576191e34cff" id="r_gad96392a988877a91c8d1576191e34cff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gad96392a988877a91c8d1576191e34cff">COAP_TLS_LIBRARY_TINYDTLS</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gad96392a988877a91c8d1576191e34cff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Using TinyDTLS library.  <br /></td></tr>
<tr class="separator:gad96392a988877a91c8d1576191e34cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6de1714f227765ef908b1ab865f77f18" id="r_ga6de1714f227765ef908b1ab865f77f18"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga6de1714f227765ef908b1ab865f77f18">COAP_TLS_LIBRARY_OPENSSL</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ga6de1714f227765ef908b1ab865f77f18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Using OpenSSL library.  <br /></td></tr>
<tr class="separator:ga6de1714f227765ef908b1ab865f77f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4e2243a1ce012460f9687058da32be2" id="r_gad4e2243a1ce012460f9687058da32be2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gad4e2243a1ce012460f9687058da32be2">COAP_TLS_LIBRARY_GNUTLS</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:gad4e2243a1ce012460f9687058da32be2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Using GnuTLS library.  <br /></td></tr>
<tr class="separator:gad4e2243a1ce012460f9687058da32be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6494be4b6aa3c5d86232cb5ba19fef83" id="r_ga6494be4b6aa3c5d86232cb5ba19fef83"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga6494be4b6aa3c5d86232cb5ba19fef83">COAP_DTLS_PKI_SETUP_VERSION</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ga6494be4b6aa3c5d86232cb5ba19fef83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Latest PKI setup version.  <br /></td></tr>
<tr class="separator:ga6494be4b6aa3c5d86232cb5ba19fef83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga5fd863493d989e394eb535cf140e99bd" id="r_ga5fd863493d989e394eb535cf140e99bd"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcoap__tls__version__t.html">coap_tls_version_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga5fd863493d989e394eb535cf140e99bd">coap_tls_version_t</a></td></tr>
<tr class="memdesc:ga5fd863493d989e394eb535cf140e99bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure used for returning the underlying (D)TLS library information.  <br /></td></tr>
<tr class="separator:ga5fd863493d989e394eb535cf140e99bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac823bdeb357bded215ac1f84dd47f38f" id="r_gac823bdeb357bded215ac1f84dd47f38f"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gac823bdeb357bded215ac1f84dd47f38f">coap_dtls_security_setup_t</a>) (void *tls_session, struct <a class="el" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a> *setup_data)</td></tr>
<tr class="memdesc:gac823bdeb357bded215ac1f84dd47f38f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Additional Security setup handler that can be set up by <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a>.  <br /></td></tr>
<tr class="separator:gac823bdeb357bded215ac1f84dd47f38f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadcb9ad4ab157cf64b6bb31b5f426e5dc" id="r_gadcb9ad4ab157cf64b6bb31b5f426e5dc"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gadcb9ad4ab157cf64b6bb31b5f426e5dc">coap_dtls_cn_callback_t</a>) (const char *cn, const <a class="el" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *asn1_public_cert, size_t asn1_length, <a class="el" href="structcoap__session__t.html">coap_session_t</a> *coap_session, unsigned depth, int validated, void *arg)</td></tr>
<tr class="memdesc:gadcb9ad4ab157cf64b6bb31b5f426e5dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">CN Validation call-back that can be set up by <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a>.  <br /></td></tr>
<tr class="separator:gadcb9ad4ab157cf64b6bb31b5f426e5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8c91b6496601cfd7e32dc4175e27697" id="r_gae8c91b6496601cfd7e32dc4175e27697"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gae8c91b6496601cfd7e32dc4175e27697">coap_asn1_privatekey_type_t</a></td></tr>
<tr class="memdesc:gae8c91b6496601cfd7e32dc4175e27697"><td class="mdescLeft">&#160;</td><td class="mdescRight">The enum used for determining the provided PKI ASN.1 (DER) Private Key formats.  <br /></td></tr>
<tr class="separator:gae8c91b6496601cfd7e32dc4175e27697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaec79178abc54e775811a60bf7c632502" id="r_gaec79178abc54e775811a60bf7c632502"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gaec79178abc54e775811a60bf7c632502">coap_pki_key_t</a></td></tr>
<tr class="memdesc:gaec79178abc54e775811a60bf7c632502"><td class="mdescLeft">&#160;</td><td class="mdescRight">The enum used for determining the PKI key formats.  <br /></td></tr>
<tr class="separator:gaec79178abc54e775811a60bf7c632502"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f6ed6c11432825b9ff054d8790be48e" id="r_ga6f6ed6c11432825b9ff054d8790be48e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga6f6ed6c11432825b9ff054d8790be48e">coap_pki_key_pem_t</a></td></tr>
<tr class="memdesc:ga6f6ed6c11432825b9ff054d8790be48e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure that holds the PKI PEM definitions.  <br /></td></tr>
<tr class="separator:ga6f6ed6c11432825b9ff054d8790be48e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf4184bd801dd9757921b3f41a678434" id="r_gabf4184bd801dd9757921b3f41a678434"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gabf4184bd801dd9757921b3f41a678434">coap_pki_key_asn1_t</a></td></tr>
<tr class="memdesc:gabf4184bd801dd9757921b3f41a678434"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure that holds the PKI ASN.1 (DER) definitions.  <br /></td></tr>
<tr class="separator:gabf4184bd801dd9757921b3f41a678434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3be52f412f8fb22b96521fb10e6b100c" id="r_ga3be52f412f8fb22b96521fb10e6b100c"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga3be52f412f8fb22b96521fb10e6b100c">coap_dtls_key_t</a></td></tr>
<tr class="memdesc:ga3be52f412f8fb22b96521fb10e6b100c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure that holds the PKI key information.  <br /></td></tr>
<tr class="separator:ga3be52f412f8fb22b96521fb10e6b100c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7c1c23e78398067ad9eb8bd70333735" id="r_gad7c1c23e78398067ad9eb8bd70333735"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gad7c1c23e78398067ad9eb8bd70333735">coap_dtls_sni_callback_t</a>) (const char *sni, void *arg)</td></tr>
<tr class="memdesc:gad7c1c23e78398067ad9eb8bd70333735"><td class="mdescLeft">&#160;</td><td class="mdescRight">Server Name Indication (SNI) Validation call-back that can be set up by <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a>.  <br /></td></tr>
<tr class="separator:gad7c1c23e78398067ad9eb8bd70333735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeaa1394cdb4d4f1e522a751c17b7bb32" id="r_gaeaa1394cdb4d4f1e522a751c17b7bb32"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gaeaa1394cdb4d4f1e522a751c17b7bb32">coap_dtls_pki_t</a></td></tr>
<tr class="memdesc:gaeaa1394cdb4d4f1e522a751c17b7bb32"><td class="mdescLeft">&#160;</td><td class="mdescRight">The structure used for defining the PKI setup data to be used.  <br /></td></tr>
<tr class="separator:gaeaa1394cdb4d4f1e522a751c17b7bb32"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gacf1b8685e693c4c5fafe2d4d207c2069" id="r_gacf1b8685e693c4c5fafe2d4d207c2069"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a0d8b252581daca277bbc4aa490a6cc01">COAP_ASN1_PKEY_NONE</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a815f6139ef4796dc825afc72871b1425">COAP_ASN1_PKEY_RSA</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a190dcef2ec78de18ce08555d285c40b7">COAP_ASN1_PKEY_RSA2</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a195328aaae1102658ebf3a9bd6d8c027">COAP_ASN1_PKEY_DSA</a>
, <br />
&#160;&#160;<a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a888108396b26f167f26e8a293e7c44e7">COAP_ASN1_PKEY_DSA1</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a5d86ada626fc1b778eabec59952bec4d">COAP_ASN1_PKEY_DSA2</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ac6a7ddf9cabc5273bb9a69de5e6971be">COAP_ASN1_PKEY_DSA3</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a4d2b14a573ffb6194d1ba2789e831de2">COAP_ASN1_PKEY_DSA4</a>
, <br />
&#160;&#160;<a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a05caf595fe597cf31b86e61e4dc21fe5">COAP_ASN1_PKEY_DH</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a32fec5facd159d2c9ca9d00cd9fb904a">COAP_ASN1_PKEY_DHX</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069abeca018329efa3c03150aac3ba058c33">COAP_ASN1_PKEY_EC</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae0e54b44eb5c901d76ddca601e46bda0">COAP_ASN1_PKEY_HMAC</a>
, <br />
&#160;&#160;<a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069ae170f1e0d7ec889322b1589b2a9f9923">COAP_ASN1_PKEY_CMAC</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a17174dc07690f17fc0fd223c76bb25dc">COAP_ASN1_PKEY_TLS1_PRF</a>
, <a class="el" href="group__dtls.html#ggacf1b8685e693c4c5fafe2d4d207c2069a8f0d588891e977c023bcf6de079dc893">COAP_ASN1_PKEY_HKDF</a>
<br />
 }</td></tr>
<tr class="memdesc:gacf1b8685e693c4c5fafe2d4d207c2069"><td class="mdescLeft">&#160;</td><td class="mdescRight">The enum used for determining the provided PKI ASN.1 (DER) Private Key formats.  <a href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">More...</a><br /></td></tr>
<tr class="separator:gacf1b8685e693c4c5fafe2d4d207c2069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b3c5ffa695a8bfa575319a39517f980" id="r_ga8b3c5ffa695a8bfa575319a39517f980"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a> { <a class="el" href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980a5685869e9efbf03fe4d05120ff810aef">COAP_PKI_KEY_PEM</a> = 0
, <a class="el" href="group__dtls.html#gga8b3c5ffa695a8bfa575319a39517f980ad1bd86830b59058a381a07865bddd3b7">COAP_PKI_KEY_ASN1</a>
 }</td></tr>
<tr class="memdesc:ga8b3c5ffa695a8bfa575319a39517f980"><td class="mdescLeft">&#160;</td><td class="mdescRight">The enum used for determining the PKI key formats.  <a href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">More...</a><br /></td></tr>
<tr class="separator:ga8b3c5ffa695a8bfa575319a39517f980"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga9def28dc6da3b77c14e89d63769ec085" id="r_ga9def28dc6da3b77c14e89d63769ec085"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga9def28dc6da3b77c14e89d63769ec085">coap_dtls_is_supported</a> (void)</td></tr>
<tr class="memdesc:ga9def28dc6da3b77c14e89d63769ec085"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether DTLS is available.  <br /></td></tr>
<tr class="separator:ga9def28dc6da3b77c14e89d63769ec085"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55b3b545f0784c7a6135021017317e1b" id="r_ga55b3b545f0784c7a6135021017317e1b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga55b3b545f0784c7a6135021017317e1b">coap_tls_is_supported</a> (void)</td></tr>
<tr class="memdesc:ga55b3b545f0784c7a6135021017317e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether TLS is available.  <br /></td></tr>
<tr class="separator:ga55b3b545f0784c7a6135021017317e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30c05cbcf1ca5320ff0349b59f8c7fcb" id="r_ga30c05cbcf1ca5320ff0349b59f8c7fcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcoap__tls__version__t.html">coap_tls_version_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dtls.html#ga30c05cbcf1ca5320ff0349b59f8c7fcb">coap_get_tls_library_version</a> (void)</td></tr>
<tr class="memdesc:ga30c05cbcf1ca5320ff0349b59f8c7fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the type and version of the underlying (D)TLS library.  <br /></td></tr>
<tr class="separator:ga30c05cbcf1ca5320ff0349b59f8c7fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>API functions for interfacing with DTLS libraries. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga6494be4b6aa3c5d86232cb5ba19fef83" name="ga6494be4b6aa3c5d86232cb5ba19fef83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6494be4b6aa3c5d86232cb5ba19fef83">&#9670;&#160;</a></span>COAP_DTLS_PKI_SETUP_VERSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COAP_DTLS_PKI_SETUP_VERSION&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Latest PKI setup version. </p>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00186">186</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="gad4e2243a1ce012460f9687058da32be2" name="gad4e2243a1ce012460f9687058da32be2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4e2243a1ce012460f9687058da32be2">&#9670;&#160;</a></span>COAP_TLS_LIBRARY_GNUTLS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COAP_TLS_LIBRARY_GNUTLS&#160;&#160;&#160;3</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Using GnuTLS library. </p>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00041">41</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="ga33b0ad5584a64154547b37edf956e91e" name="ga33b0ad5584a64154547b37edf956e91e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga33b0ad5584a64154547b37edf956e91e">&#9670;&#160;</a></span>COAP_TLS_LIBRARY_NOTLS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COAP_TLS_LIBRARY_NOTLS&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>No DTLS library. </p>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00038">38</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="ga6de1714f227765ef908b1ab865f77f18" name="ga6de1714f227765ef908b1ab865f77f18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6de1714f227765ef908b1ab865f77f18">&#9670;&#160;</a></span>COAP_TLS_LIBRARY_OPENSSL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COAP_TLS_LIBRARY_OPENSSL&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Using OpenSSL library. </p>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00040">40</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="gad96392a988877a91c8d1576191e34cff" name="gad96392a988877a91c8d1576191e34cff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad96392a988877a91c8d1576191e34cff">&#9670;&#160;</a></span>COAP_TLS_LIBRARY_TINYDTLS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define COAP_TLS_LIBRARY_TINYDTLS&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Using TinyDTLS library. </p>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00039">39</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gae8c91b6496601cfd7e32dc4175e27697" name="gae8c91b6496601cfd7e32dc4175e27697"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8c91b6496601cfd7e32dc4175e27697">&#9670;&#160;</a></span>coap_asn1_privatekey_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a> <a class="el" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The enum used for determining the provided PKI ASN.1 (DER) Private Key formats. </p>

</div>
</div>
<a id="gadcb9ad4ab157cf64b6bb31b5f426e5dc" name="gadcb9ad4ab157cf64b6bb31b5f426e5dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadcb9ad4ab157cf64b6bb31b5f426e5dc">&#9670;&#160;</a></span>coap_dtls_cn_callback_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* coap_dtls_cn_callback_t) (const char *cn, const <a class="el" href="uthash_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *asn1_public_cert, size_t asn1_length, <a class="el" href="structcoap__session__t.html">coap_session_t</a> *coap_session, unsigned depth, int validated, void *arg)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>CN Validation call-back that can be set up by <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a>. </p>
<p>Invoked when libcoap has done the validation checks at the TLS level, but the application needs to check that the CN is allowed. CN is the SubjectAltName in the cert, if not present, then the leftmost Common Name (CN) component of the subject name.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">cn</td><td>The determined CN from the certificate </td></tr>
    <tr><td class="paramname">asn1_public_cert</td><td>The ASN.1 DER encoded X.509 certificate </td></tr>
    <tr><td class="paramname">asn1_length</td><td>The ASN.1 length </td></tr>
    <tr><td class="paramname">coap_session</td><td>The CoAP session associated with the certificate update </td></tr>
    <tr><td class="paramname">depth</td><td>Depth in cert chain. If 0, then client cert, else a CA </td></tr>
    <tr><td class="paramname">validated</td><td>TLS layer can find no issues if 1 </td></tr>
    <tr><td class="paramname">arg</td><td>The same as was passed into <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a> in setup_data-&gt;cn_call_back_arg</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>1</code> if accepted, else <code>0</code> if to be rejected. </dd></dl>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00098">98</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="ga3be52f412f8fb22b96521fb10e6b100c" name="ga3be52f412f8fb22b96521fb10e6b100c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3be52f412f8fb22b96521fb10e6b100c">&#9670;&#160;</a></span>coap_dtls_key_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a> <a class="el" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The structure that holds the PKI key information. </p>

</div>
</div>
<a id="gaeaa1394cdb4d4f1e522a751c17b7bb32" name="gaeaa1394cdb4d4f1e522a751c17b7bb32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaeaa1394cdb4d4f1e522a751c17b7bb32">&#9670;&#160;</a></span>coap_dtls_pki_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a> <a class="el" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The structure used for defining the PKI setup data to be used. </p>

</div>
</div>
<a id="gac823bdeb357bded215ac1f84dd47f38f" name="gac823bdeb357bded215ac1f84dd47f38f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac823bdeb357bded215ac1f84dd47f38f">&#9670;&#160;</a></span>coap_dtls_security_setup_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(* coap_dtls_security_setup_t) (void *tls_session, struct <a class="el" href="structcoap__dtls__pki__t.html">coap_dtls_pki_t</a> *setup_data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Additional Security setup handler that can be set up by <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a>. </p>
<p>Invoked when libcoap has done the validation checks at the TLS level, but the application needs to do some additional checks/changes/updates.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tls_session</td><td>The security session definition - e.g. SSL * for OpenSSL. NULL if server call-back. This will be dependent on the underlying TLS library - see <a class="el" href="group__dtls.html#ga30c05cbcf1ca5320ff0349b59f8c7fcb" title="Determine the type and version of the underlying (D)TLS library.">coap_get_tls_library_version()</a> </td></tr>
    <tr><td class="paramname">setup_data</td><td>A structure containing setup data originally passed into <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a> or <a class="el" href="coap__session_8c.html#ab3e76db58be0cf8c765b61eaa21f53f0" title="Creates a new client session to the designated server with PKI credentials.">coap_new_client_session_pki()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>1</code> if successful, else <code>0</code>. </dd></dl>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00077">77</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="gad7c1c23e78398067ad9eb8bd70333735" name="gad7c1c23e78398067ad9eb8bd70333735"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7c1c23e78398067ad9eb8bd70333735">&#9670;&#160;</a></span>coap_dtls_sni_callback_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structcoap__dtls__key__t.html">coap_dtls_key_t</a> *(* coap_dtls_sni_callback_t) (const char *sni, void *arg)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Server Name Indication (SNI) Validation call-back that can be set up by <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a>. </p>
<p>Invoked if the SNI is not previously seen and prior to sending a certificate set back to the client so that the appropriate certificate set can be used based on the requesting SNI.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">sni</td><td>The requested SNI </td></tr>
    <tr><td class="paramname">arg</td><td>The same as was passed into <a class="el" href="net_8c.html#a3e6893a08fe41f0ad6fbb84f14b10c36" title="Set the context&#39;s default PKI information for a server.">coap_context_set_pki()</a> in setup_data-&gt;sni_call_back_arg</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New set of certificates to use, or <code>NULL</code> if SNI is to be rejected. </dd></dl>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00182">182</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="gabf4184bd801dd9757921b3f41a678434" name="gabf4184bd801dd9757921b3f41a678434"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabf4184bd801dd9757921b3f41a678434">&#9670;&#160;</a></span>coap_pki_key_asn1_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a> <a class="el" href="structcoap__pki__key__asn1__t.html">coap_pki_key_asn1_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The structure that holds the PKI ASN.1 (DER) definitions. </p>

</div>
</div>
<a id="ga6f6ed6c11432825b9ff054d8790be48e" name="ga6f6ed6c11432825b9ff054d8790be48e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f6ed6c11432825b9ff054d8790be48e">&#9670;&#160;</a></span>coap_pki_key_pem_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a> <a class="el" href="structcoap__pki__key__pem__t.html">coap_pki_key_pem_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The structure that holds the PKI PEM definitions. </p>

</div>
</div>
<a id="gaec79178abc54e775811a60bf7c632502" name="gaec79178abc54e775811a60bf7c632502"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaec79178abc54e775811a60bf7c632502">&#9670;&#160;</a></span>coap_pki_key_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a> <a class="el" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The enum used for determining the PKI key formats. </p>

</div>
</div>
<a id="ga5fd863493d989e394eb535cf140e99bd" name="ga5fd863493d989e394eb535cf140e99bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5fd863493d989e394eb535cf140e99bd">&#9670;&#160;</a></span>coap_tls_version_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structcoap__tls__version__t.html">coap_tls_version_t</a> <a class="el" href="structcoap__tls__version__t.html">coap_tls_version_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The structure used for returning the underlying (D)TLS library information. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gacf1b8685e693c4c5fafe2d4d207c2069" name="gacf1b8685e693c4c5fafe2d4d207c2069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacf1b8685e693c4c5fafe2d4d207c2069">&#9670;&#160;</a></span>coap_asn1_privatekey_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__dtls.html#gacf1b8685e693c4c5fafe2d4d207c2069">coap_asn1_privatekey_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The enum used for determining the provided PKI ASN.1 (DER) Private Key formats. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a0d8b252581daca277bbc4aa490a6cc01" name="ggacf1b8685e693c4c5fafe2d4d207c2069a0d8b252581daca277bbc4aa490a6cc01"></a>COAP_ASN1_PKEY_NONE&#160;</td><td class="fielddoc"><p>NONE. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a815f6139ef4796dc825afc72871b1425" name="ggacf1b8685e693c4c5fafe2d4d207c2069a815f6139ef4796dc825afc72871b1425"></a>COAP_ASN1_PKEY_RSA&#160;</td><td class="fielddoc"><p>RSA type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a190dcef2ec78de18ce08555d285c40b7" name="ggacf1b8685e693c4c5fafe2d4d207c2069a190dcef2ec78de18ce08555d285c40b7"></a>COAP_ASN1_PKEY_RSA2&#160;</td><td class="fielddoc"><p>RSA2 type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a195328aaae1102658ebf3a9bd6d8c027" name="ggacf1b8685e693c4c5fafe2d4d207c2069a195328aaae1102658ebf3a9bd6d8c027"></a>COAP_ASN1_PKEY_DSA&#160;</td><td class="fielddoc"><p>DSA type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a888108396b26f167f26e8a293e7c44e7" name="ggacf1b8685e693c4c5fafe2d4d207c2069a888108396b26f167f26e8a293e7c44e7"></a>COAP_ASN1_PKEY_DSA1&#160;</td><td class="fielddoc"><p>DSA1 type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a5d86ada626fc1b778eabec59952bec4d" name="ggacf1b8685e693c4c5fafe2d4d207c2069a5d86ada626fc1b778eabec59952bec4d"></a>COAP_ASN1_PKEY_DSA2&#160;</td><td class="fielddoc"><p>DSA2 type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069ac6a7ddf9cabc5273bb9a69de5e6971be" name="ggacf1b8685e693c4c5fafe2d4d207c2069ac6a7ddf9cabc5273bb9a69de5e6971be"></a>COAP_ASN1_PKEY_DSA3&#160;</td><td class="fielddoc"><p>DSA3 type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a4d2b14a573ffb6194d1ba2789e831de2" name="ggacf1b8685e693c4c5fafe2d4d207c2069a4d2b14a573ffb6194d1ba2789e831de2"></a>COAP_ASN1_PKEY_DSA4&#160;</td><td class="fielddoc"><p>DSA4 type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a05caf595fe597cf31b86e61e4dc21fe5" name="ggacf1b8685e693c4c5fafe2d4d207c2069a05caf595fe597cf31b86e61e4dc21fe5"></a>COAP_ASN1_PKEY_DH&#160;</td><td class="fielddoc"><p>DH type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a32fec5facd159d2c9ca9d00cd9fb904a" name="ggacf1b8685e693c4c5fafe2d4d207c2069a32fec5facd159d2c9ca9d00cd9fb904a"></a>COAP_ASN1_PKEY_DHX&#160;</td><td class="fielddoc"><p>DHX type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069abeca018329efa3c03150aac3ba058c33" name="ggacf1b8685e693c4c5fafe2d4d207c2069abeca018329efa3c03150aac3ba058c33"></a>COAP_ASN1_PKEY_EC&#160;</td><td class="fielddoc"><p>EC type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069ae0e54b44eb5c901d76ddca601e46bda0" name="ggacf1b8685e693c4c5fafe2d4d207c2069ae0e54b44eb5c901d76ddca601e46bda0"></a>COAP_ASN1_PKEY_HMAC&#160;</td><td class="fielddoc"><p>HMAC type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069ae170f1e0d7ec889322b1589b2a9f9923" name="ggacf1b8685e693c4c5fafe2d4d207c2069ae170f1e0d7ec889322b1589b2a9f9923"></a>COAP_ASN1_PKEY_CMAC&#160;</td><td class="fielddoc"><p>CMAC type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a17174dc07690f17fc0fd223c76bb25dc" name="ggacf1b8685e693c4c5fafe2d4d207c2069a17174dc07690f17fc0fd223c76bb25dc"></a>COAP_ASN1_PKEY_TLS1_PRF&#160;</td><td class="fielddoc"><p>TLS1_PRF type. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacf1b8685e693c4c5fafe2d4d207c2069a8f0d588891e977c023bcf6de079dc893" name="ggacf1b8685e693c4c5fafe2d4d207c2069a8f0d588891e977c023bcf6de079dc893"></a>COAP_ASN1_PKEY_HKDF&#160;</td><td class="fielddoc"><p>HKDF type. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00110">110</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<a id="ga8b3c5ffa695a8bfa575319a39517f980" name="ga8b3c5ffa695a8bfa575319a39517f980"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8b3c5ffa695a8bfa575319a39517f980">&#9670;&#160;</a></span>coap_pki_key_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__dtls.html#ga8b3c5ffa695a8bfa575319a39517f980">coap_pki_key_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The enum used for determining the PKI key formats. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga8b3c5ffa695a8bfa575319a39517f980a5685869e9efbf03fe4d05120ff810aef" name="gga8b3c5ffa695a8bfa575319a39517f980a5685869e9efbf03fe4d05120ff810aef"></a>COAP_PKI_KEY_PEM&#160;</td><td class="fielddoc"><p>The PKI key type is PEM. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga8b3c5ffa695a8bfa575319a39517f980ad1bd86830b59058a381a07865bddd3b7" name="gga8b3c5ffa695a8bfa575319a39517f980ad1bd86830b59058a381a07865bddd3b7"></a>COAP_PKI_KEY_ASN1&#160;</td><td class="fielddoc"><p>The PKI key type is ASN.1 (DER) </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="coap__dtls_8h_source.html#l00131">131</a> of file <a class="el" href="coap__dtls_8h_source.html">coap_dtls.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga9def28dc6da3b77c14e89d63769ec085" name="ga9def28dc6da3b77c14e89d63769ec085"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9def28dc6da3b77c14e89d63769ec085">&#9670;&#160;</a></span>coap_dtls_is_supported()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int coap_dtls_is_supported </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether DTLS is available. </p>
<dl class="section return"><dt>Returns</dt><dd><code>1</code> if support for DTLS is enabled, or <code>0</code> otherwise. </dd></dl>

<p class="definition">Definition at line <a class="el" href="coap__notls_8c_source.html#l00023">23</a> of file <a class="el" href="coap__notls_8c_source.html">coap_notls.c</a>.</p>

</div>
</div>
<a id="ga30c05cbcf1ca5320ff0349b59f8c7fcb" name="ga30c05cbcf1ca5320ff0349b59f8c7fcb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga30c05cbcf1ca5320ff0349b59f8c7fcb">&#9670;&#160;</a></span>coap_get_tls_library_version()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcoap__tls__version__t.html">coap_tls_version_t</a> * coap_get_tls_library_version </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determine the type and version of the underlying (D)TLS library. </p>
<dl class="section return"><dt>Returns</dt><dd>The version and type of library libcoap was compiled against. </dd></dl>

<p class="definition">Definition at line <a class="el" href="coap__notls_8c_source.html#l00033">33</a> of file <a class="el" href="coap__notls_8c_source.html">coap_notls.c</a>.</p>

</div>
</div>
<a id="ga55b3b545f0784c7a6135021017317e1b" name="ga55b3b545f0784c7a6135021017317e1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga55b3b545f0784c7a6135021017317e1b">&#9670;&#160;</a></span>coap_tls_is_supported()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int coap_tls_is_supported </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether TLS is available. </p>
<dl class="section return"><dt>Returns</dt><dd><code>1</code> if support for TLS is enabled, or <code>0</code> otherwise. </dd></dl>

<p class="definition">Definition at line <a class="el" href="coap__notls_8c_source.html#l00028">28</a> of file <a class="el" href="coap__notls_8c_source.html">coap_notls.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Fri Dec 27 2024 09:57:44 for libcoap by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
  </ul>
</div>
</body>
</html>
